package com.etime.shycourse.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;


/**
 * <p>
 * 课程表
 * </p>
 *
 * @author wb
 * @since 2021-12-17
 */
@ApiModel(value = "Course对象", description = "课程")
public class Course implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "courseid", type = IdType.AUTO)
    private Integer courseid;

    private Integer coursetypeid;

    private String coursetitle;

    private String coursesubtitle;

    @ApiModelProperty(value = "0--未发布	 1--发布	 2--关闭")
    private Integer coursestate;

    @ApiModelProperty(value = "0--未审核	 1--通过	 2--未通过")
    private Integer courseaudit;

    private String courseauditdesc;

    private String coursedesc;

    private String coursegoals;

    private String courseaudiences;

    private String coursepic;

    private Date coursecreatetime;

    private Date courseupdatetime;
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal courseprice;
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal courseoriginprice;
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal coursecoinprice;
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal coursecoinmaxpoint;
    @ApiModelProperty(value = "0--不开启	 1--开启")
    private Integer coursecoinused;
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal coursescore;

    private Integer coursepullcount;

    @ApiModelProperty(value = "0--不推荐 1--推荐")
    private Integer courserecommended;

    @ApiModelProperty(value = "1-n	数字越大，排序越高")
    private Integer coursesort;

    private Integer coursecommentcount;

    @ApiModelProperty(value = "1---按课程购买	 2---按章购买 3---按节购买 4---按课时购买")
    private Integer coursepaytype;
    // 课程教师id    courseteacherid
    private Integer courseteacherid;

    private String courseteachername;

    private Float coursesalerpoint;

    private Float coursetecpoint;

    @ApiModelProperty(value = "1--教师	2--机构")
    private Integer coursetecorg;
    @ApiModelProperty(value = "-2 ---独立老师的课程")
    private Integer courseorgid;
    // 课程过期时间 新增
    private Integer coursevaliddays;
    @TableField(exist = false)
    //@ApiModelProperty(value = "sort:排序 ,0=asc 1=desc")
    private Integer sort;

    public Integer getSort() {
        return sort;
    }

    @TableField(exist = false)
    //@ApiModelProperty(value = "SortBy:用什么排序 ,0=课程评分，1=课程点击次数，2=评论次数")
    private Integer SortBy;

    @TableField(exist = false)
    private String coursetypename;

    // 课程评论的次数
    @TableField(exist = false)
    private Integer countCommentNumber;
    //课程类型
    private Integer coursetype;
    // 客服
    @ApiModelProperty(value = "客服")
    private String courseadvice;

    @ApiModelProperty(value = "开班时间")
    private String classbegin;
    @ApiModelProperty(value = "课时数")
    private String classlessonnum;
    //机构简写
    private String classorg;
    // 师资介绍
    private String classteacherinfo;
    // 备用字段
    private String field1;
    private String field2;
    private String field3;
    private String field4;
    private String field5;
    private String field6;

    public String getClassteacherinfo() {
        return classteacherinfo;
    }

    public void setClassteacherinfo(String classteacherinfo) {
        this.classteacherinfo = classteacherinfo;
    }

    public String getClassbegin() {
        return classbegin;
    }

    public void setClassbegin(String classbegin) {
        this.classbegin = classbegin;
    }

    public String getClasslessonnum() {
        return classlessonnum;
    }

    public void setClasslessonnum(String classlessonnum) {
        this.classlessonnum = classlessonnum;
    }

    public String getClassorg() {
        return classorg;
    }

    public void setClassorg(String classorg) {
        this.classorg = classorg;
    }

    public String getField1() {
        return field1;
    }

    public void setField1(String field1) {
        this.field1 = field1;
    }

    public String getField2() {
        return field2;
    }

    public void setField2(String field2) {
        this.field2 = field2;
    }

    public String getField3() {
        return field3;
    }

    public void setField3(String field3) {
        this.field3 = field3;
    }

    public String getField4() {
        return field4;
    }

    public void setField4(String field4) {
        this.field4 = field4;
    }

    public String getField5() {
        return field5;
    }

    public void setField5(String field5) {
        this.field5 = field5;
    }

    public String getField6() {
        return field6;
    }

    public void setField6(String field6) {
        this.field6 = field6;
    }

    public Integer getCoursetype() {
        return coursetype;
    }

    public void setCoursetype(Integer coursetype) {
        this.coursetype = coursetype;
    }

    public String getCourseadvice() {
        return courseadvice;
    }

    public void setCourseadvice(String courseadvice) {
        this.courseadvice = courseadvice;
    }

    public Integer getCountCommentNumber() {
        return countCommentNumber;
    }

    public void setCountCommentNumber(Integer countCommentNumber) {
        this.countCommentNumber = countCommentNumber;
    }

    public Integer getCoursevaliddays() {
        return coursevaliddays;
    }

    public void setCoursevaliddays(Integer coursevaliddays) {
        this.coursevaliddays = coursevaliddays;
    }

    public String getCoursetypename() {
        return coursetypename;
    }

    public void setCoursetypename(String coursetypename) {
        this.coursetypename = coursetypename;
    }

    public Integer getSortBy() {
        return SortBy;
    }

    public void setSortBy(Integer sortBy) {
        SortBy = sortBy;
    }

    public void setSort(Integer sort) {
        this.sort = sort;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public Integer getCourseid() {
        return courseid;
    }

    public void setCourseid(Integer courseid) {
        this.courseid = courseid;
    }

    public Integer getCoursetypeid() {
        return coursetypeid;
    }

    public void setCoursetypeid(Integer coursetypeid) {
        this.coursetypeid = coursetypeid;
    }

    public String getCoursetitle() {
        return coursetitle;
    }

    public void setCoursesubtitle(String coursesubtitle) {
        this.coursesubtitle = coursesubtitle;
    }

    public void setCoursetitle(String coursetitle) {
        this.coursetitle = coursetitle;
    }

    public String getCoursesubtitle() {
        return coursesubtitle;
    }


    public Integer getCoursestate() {
        return coursestate;
    }

    public void setCoursestate(Integer coursestate) {
        this.coursestate = coursestate;
    }

    public Integer getCourseaudit() {
        return courseaudit;
    }

    public void setCourseaudit(Integer courseaudit) {
        this.courseaudit = courseaudit;
    }

    public String getCourseauditdesc() {
        return courseauditdesc;
    }

    public void setCourseauditdesc(String courseauditdesc) {
        this.courseauditdesc = courseauditdesc;
    }

    public String getCoursedesc() {
        return coursedesc;
    }

    public void setCoursedesc(String coursedesc) {
        this.coursedesc = coursedesc;
    }

    public String getCoursegoals() {
        return coursegoals;
    }

    public void setCoursegoals(String coursegoals) {
        this.coursegoals = coursegoals;
    }

    public String getCourseaudiences() {
        return courseaudiences;
    }

    public void setCourseaudiences(String courseaudiences) {
        this.courseaudiences = courseaudiences;
    }

    public String getCoursepic() {
        return coursepic;
    }

    public void setCoursepic(String coursepic) {
        this.coursepic = coursepic;
    }

    public Date getCoursecreatetime() {
        return coursecreatetime;
    }

    public void setCoursecreatetime(Date coursecreatetime) {
        this.coursecreatetime = coursecreatetime;
    }

    public Date getCourseupdatetime() {
        return courseupdatetime;
    }

    public void setCourseupdatetime(Date courseupdatetime) {
        this.courseupdatetime = courseupdatetime;
    }

    public BigDecimal getCourseprice() {
        return courseprice;
    }

    public void setCourseprice(BigDecimal courseprice) {
        this.courseprice = courseprice;
    }

    public BigDecimal getCourseoriginprice() {
        return courseoriginprice == null ? null : courseoriginprice.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setCourseoriginprice(BigDecimal courseoriginprice) {
        this.courseoriginprice = courseoriginprice;
    }

    public BigDecimal getCoursecoinprice() {
        return coursecoinprice == null ? null : coursecoinprice.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setCoursecoinprice(BigDecimal coursecoinprice) {
        this.coursecoinprice = coursecoinprice;
    }

    public BigDecimal getCoursecoinmaxpoint() {
        return coursecoinmaxpoint == null ? null : coursecoinmaxpoint.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setCoursecoinmaxpoint(BigDecimal coursecoinmaxpoint) {
        this.coursecoinmaxpoint = coursecoinmaxpoint;
    }

    public Integer getCoursecoinused() {
        return coursecoinused;
    }

    public void setCoursecoinused(Integer coursecoinused) {
        this.coursecoinused = coursecoinused;
    }

    public BigDecimal getCoursescore() {
        return coursescore == null ? null : coursescore.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setCoursescore(BigDecimal coursescore) {
        this.coursescore = coursescore;
    }

    public Integer getCoursepullcount() {
        return coursepullcount;
    }

    public void setCoursepullcount(Integer coursepullcount) {
        this.coursepullcount = coursepullcount;
    }

    public Integer getCourserecommended() {
        return courserecommended;
    }

    public void setCourserecommended(Integer courserecommended) {
        this.courserecommended = courserecommended;
    }

    public Integer getCoursesort() {
        return coursesort;
    }

    public void setCoursesort(Integer coursesort) {
        this.coursesort = coursesort;
    }

    public Integer getCoursecommentcount() {
        return coursecommentcount;
    }

    public void setCoursecommentcount(Integer coursecommentcount) {
        this.coursecommentcount = coursecommentcount;
    }

    public Integer getCoursepaytype() {
        return coursepaytype;
    }

    public void setCoursepaytype(Integer coursepaytype) {
        this.coursepaytype = coursepaytype;
    }

    public Integer getCourseteacherid() {
        return courseteacherid;
    }

    public void setCourseteacherid(Integer courseteacherid) {
        this.courseteacherid = courseteacherid;
    }

    public String getCourseteachername() {
        return courseteachername;
    }

    public void setCourseteachername(String courseteachername) {
        this.courseteachername = courseteachername;
    }

    public Float getCoursesalerpoint() {
        return coursesalerpoint;
    }

    public void setCoursesalerpoint(Float coursesalerpoint) {
        this.coursesalerpoint = coursesalerpoint;
    }

    public Float getCoursetecpoint() {
        return coursetecpoint;
    }

    public void setCoursetecpoint(Float coursetecpoint) {
        this.coursetecpoint = coursetecpoint;
    }

    public Integer getCoursetecorg() {
        return coursetecorg;
    }

    public void setCoursetecorg(Integer coursetecorg) {
        this.coursetecorg = coursetecorg;
    }

    public Integer getCourseorgid() {
        return courseorgid;
    }

    public void setCourseorgid(Integer courseorgid) {
        this.courseorgid = courseorgid;
    }

    @Override
    public String toString() {
        return "Course{" +
                "courseid=" + courseid +
                ", coursetypeid=" + coursetypeid +
                ", coursetitle='" + coursetitle + '\'' +
                ", coursesubtitle='" + coursesubtitle + '\'' +
                ", coursestate=" + coursestate +
                ", courseaudit=" + courseaudit +
                ", courseauditdesc='" + courseauditdesc + '\'' +
                ", coursedesc='" + coursedesc + '\'' +
                ", coursegoals='" + coursegoals + '\'' +
                ", courseaudiences='" + courseaudiences + '\'' +
                ", coursepic='" + coursepic + '\'' +
                ", coursecreatetime=" + coursecreatetime +
                ", courseupdatetime=" + courseupdatetime +
                ", courseprice=" + courseprice +
                ", courseoriginprice=" + courseoriginprice +
                ", coursecoinprice=" + coursecoinprice +
                ", coursecoinmaxpoint=" + coursecoinmaxpoint +
                ", coursecoinused=" + coursecoinused +
                ", coursescore=" + coursescore +
                ", coursepullcount=" + coursepullcount +
                ", courserecommended=" + courserecommended +
                ", coursesort=" + coursesort +
                ", coursecommentcount=" + coursecommentcount +
                ", coursepaytype=" + coursepaytype +
                ", courseteacherid=" + courseteacherid +
                ", courseteachername='" + courseteachername + '\'' +
                ", coursesalerpoint=" + coursesalerpoint +
                ", coursetecpoint=" + coursetecpoint +
                ", coursetecorg=" + coursetecorg +
                ", courseorgid=" + courseorgid +
                ", sort=" + sort +
                ", SortBy=" + SortBy +
                '}';
    }
}
